package com.service.user;

import com.entity.GoodsReceiveInfo;

import java.util.List;

public interface GRIService {
  /**
   * 根据收货信息编号获取收货信息
   *
   * @param grId 收货信息编号
   * @return 收货信息
   */
  GoodsReceiveInfo getAGoodsReceiveInfoById(String grId);

  /**
   * 获取指定用户的收货信息列表
   *
   * @param userId 用户编号
   * @return 用户的收货信息列表
   */
  List<GoodsReceiveInfo> getGoodsReceiveInfo(String userId);

  /**
   * 修改收货信息
   *
   * @param userId 用户编号
   * @param grId 收货信息编号
   * @param grName 收货人姓名
   * @param grPhone 收货人电话号码
   * @param grProvinces 收货地址省份
   * @param grCity 收货地址地级市
   * @param grPrefecture 收货地址县级市
   * @param grSpecificAddr 收货地址具体位置
   * @param status 收货地址状态(1为该用户默认收获地址，0则不是)
   * @return 修改成功返回1，否则返回0
   */
  int chGoodsReceiveInfo(
      String userId,
      String grId,
      String grName,
      String grPhone,
      String grProvinces,
      String grCity,
      String grPrefecture,
      String grSpecificAddr,
      int status);

  /**
   * 将收货信息设置为默认
   *
   * @param userId 用户编号
   * @param grId 收货信息编号
   * @return 设置成功返回1，失败返回0
   */
  int setDefault(String userId, String grId);

  /**
   * 添加收货地址 参数列表同上
   *
   * @return 新添加收获地址的编号
   */
  String addGoodsReceiveInfo(
      String userId,
      String grName,
      String grPhone,
      String grProvinces,
      String grCity,
      String grPrefecture,
      String grSpecificAddr,
      int status);

  /**
   * 删除一条收货信息
   *
   * @param grId 收货信息编号
   * @return 删除成功返回1，失败返回0
   */
  int delGoodsReceiveInfo(String grId);
}
